package com.xiaobing.common.config;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.xiaobing.common.utils.SecurityUtils;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Date;

/**
 * @program: mybatisplus 配置统计处理基础数据
 * @author: xulk
 * @create: 2024-07-26 15:48
 */


@Configuration
public class MybatisPlusConfig {

    @Bean
    public MetaObjectHandler metaObjectHandler() {
        return new MetaObjectHandler() {
            @Override
            public void insertFill(MetaObject metaObject) {
                Long userId = SecurityUtils.getUserId();
                // 插入时填充的逻辑
                setFieldValByName("createTime", new Date(), metaObject);
                setFieldValByName("updateTime", new Date(), metaObject);
                setFieldValByName("createBy", SecurityUtils.getUserIdStr() , metaObject); // 这里可以获取当前用户信息设置
                setFieldValByName("updateBy", SecurityUtils.getUserIdStr() , metaObject); // 这里可以获取当前用户信息设置
            }

            @Override
            public void updateFill(MetaObject metaObject) {
                // 更新时填充的逻辑
                setFieldValByName("updateTime", new Date(), metaObject);
                setFieldValByName("updateBy", "system", metaObject); // 这里可以获取当前用户信息设置
            }
        };
    }
}
